/**
 * 截图工具类
 */
let cachedImage = null // 缓存截图
let lastCaptureTime = 0 // 上次截图时间
const CACHE_DURATION = 1000 // 截图缓存时间（毫秒）

/**
 * 获取截图（带缓存）
 * @returns 图像对象
 */
function getScreenshot() {
  const now = Date.now()
  if (cachedImage && now - lastCaptureTime < CACHE_DURATION) {
    return cachedImage // 返回缓存截图
  }
  // 重新截图
  cachedImage = captureScreen()
  lastCaptureTime = now
  return cachedImage
}

/**
 * 在当前页面的截图中找图
 * @param {*} imageName 图片名称, 只需要文件名即可, 会去resources\images这个目录下找
 * @param {*} threshold 相似度
 * @returns 找到的图片左上坐标点
 */
function findImageInCapture(imageName, threshold) {
  const absolutePath = getImageAbsolutePath(imageName)
  console.error('---toFindImagePath: ', absolutePath)
  let toFindImage = images.read(absolutePath)
  console.error('---toFindImage: ', toFindImage)
  if (!toFindImage) {
    console.error('未找到要对比的图片资源文件')
  }
  // 截图并找图
  let point = findImage(getScreenshot(), toFindImage, {e
    region: [0, 0], // 从点 [0, 0] 找到屏幕的右下角
    threshold: threshold || 0.5 // 相似度
  })
  if (point) {
    console.error('找到目标: ' + point)
  } else {
    console.error('未找到目标')
  }
  return point
}

function getWorkDir() {
  const configStorage = storages.create('config')
  return configStorage.get('workDir')
}

function getImageAbsolutePath(imageName) {
  const workDir = getWorkDir() || files.cwd()
  return `${workDir}/resources/images/${imageName}`
}
